package com.snail.model.pojo.mall;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 商品表实体类
 * 对应表：biz_product
 */
@Data
@TableName("biz_product") // 绑定数据库表名
public class BizProduct {

    /**
     * 商品ID（主键，自增）
     */
    @TableId(type = IdType.AUTO)
    private Integer productId;

    /**
     * 商家用户ID（关联用户表）
     */
    @TableField("seller_user_id")
    private Integer sellerUserId;

    /**
     * 商品名称（如“Python 零基础入门课”）
     */
    private String productName;

    /**
     * 商品单价（固定价格，无多规格场景）
     */
    private Double price;

    /**
     * 商品状态（0=下架，1=上架）
     */
    private Integer status;

    /**
     * 主图URL
     */
    private String mainImage;

    /**
     * 创建时间（插入时自动填充）
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间（插入和更新时自动填充）
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 创建人（操作人ID，插入时自动填充）
     */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 更新人（操作人ID，插入和更新时自动填充）
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /**
     * 逻辑删除标识（0=未删，1=已删）
     */
    private Integer deleted;

    /**
     * 库存
     */
    private Integer stock;

    /**
     * 详情图片URL
     */
    private String detailImage;

    /**
     * 分类ID（关联 biz_product_category.id）
     */
    @TableField("category_id")
    private Integer categoryId;

    /**
     * 商品描述
     */
    private String description;

    /**
     * 商品销量
     */
    private Integer sale;

    // 关联规格列表（数据库无此字段，标记为非数据库字段）
    @TableField(exist = false)
    private List<BizProductSku> skus;       // 一对多：一个商品对应多个规格
}
